package com.denlaku.longan.controller;

import com.denlaku.longan.http.Return;
import com.denlaku.longan.qo.CustomApiQuery;
import com.denlaku.longan.vo.CustomApi;
import com.denlaku.longan.vo.PageBy;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

/**
 * @author tianx
 */
@RequestMapping("/api/custom-api-info")
public interface CustomApiController {
    /**
     * 新增自定义API
     *
     * @param customApi 自定义API
     * @return 响应对象
     */
    @PostMapping("/add")
    Return<Long> add(@RequestBody CustomApi customApi);

    /**
     * 更新自定义API
     *
     * @param customApi 自定义API
     * @return 响应对象
     */
    @PostMapping("/update")
    Return<Void> update(@RequestBody CustomApi customApi);

    /**
     * 删除自定义API
     *
     * @param id 自定义API ID
     * @return 响应对象
     */
    @PostMapping("/delete")
    Return<Void> delete(Long id);

    /**
     * 根据ID获取自定义API
     *
     * @param id 自定义API ID
     * @return 响应对象
     */
    @GetMapping("/get")
    Return<CustomApi> get(Long id);

    /**
     * 根据ID获取自定义API
     *
     * @param query 查询参数
     * @param pageBy 分页参数
     * @return 响应对象
     */
    @PostMapping("/page-list")
    Return<List<CustomApi>> pageList(CustomApiQuery query, PageBy pageBy);

}
